home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2009 February
/
PCWFEB09.iso
/
Software
/
Linux
/
SLAX 6.0.8
/
slax-6.0.8.iso
/
boot
/
liloinst.sh
< prev
next >
Wrap
Linux/UNIX/POSIX Shell Script
|
2008-11-21
|
3KB
|
87 lines
#!/bin/bash
# This script will make almost ANY partition bootable, regardless the filesystem
# used on it. bootinst.sh/.bat is only for FAT filesystems, while this one should
# work everywhere. Moreover it setups a 'slaxchanges' directory to be used for
# persistent changes.
set -e
TARGET=""
MBR=""
# Find out which partition or disk are we using
MYMNT=$(cd -P $(dirname $0) ; pwd)
while [ "$MYMNT" != "" -a "$MYMNT" != "." -a "$MYMNT" != "/" ]; do
TARGET=$(egrep "[^[:space:]]+[[:space:]]+$MYMNT[[:space:]]+" /proc/mounts | cut -d " " -f 1)
if [ "$TARGET" != "" ]; then break; fi
MYMNT=$(dirname "$MYMNT")
done
if [ "$TARGET" = "" ]; then
echo "Can't find device to install to."
echo "Make sure you run this script from a mounted device."
exit 1
fi
if [ "$(cat /proc/mounts | grep "^$TARGET" | grep noexec)" ]; then
echo "The disk $TARGET is mounted with noexec parameter, trying to remount..."
mount -o remount,exec "$TARGET"
fi
MBR=$(echo "$TARGET" | sed -r "s/[0-9]+\$//g")
NUM=${TARGET:${#MBR}}
cd "$MYMNT"
# only partition is allowed, not the whole disk
if [ "$MBR" = "$TARGET" ]; then
echo Error: You must install your system to a partition, not the whole disk
exit 1
fi
clear
echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
echo " Welcome to Slax boot installer "
echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
echo
echo "This installer will setup disk $MBR to boot only Slax from $TARGET."
echo "Warning! Master boot record (MBR) of $MBR will be overwritten."
echo "If you use $MBR to boot any existing operating system, it will not work"
echo "anymore. Only Slax will boot from this device. Be careful!"
echo
echo "Press any key to continue, or Ctrl+C to abort..."
read junk
clear
echo "Flushing filesystem buffers, this may take a while..."
sync
mkdir -p $MYMNT/slaxchanges
if [ $? -ne 0 ]; then
echo "Make sure to mount the partition read-write." >&2
exit 5
fi
cat << ENDOFTEXT >$MYMNT/boot/lilo.conf
boot=$MBR
prompt
timeout=40
lba32
compact
change-rules
reset
install=text
image=$MYMNT/boot/vmlinuz
initrd=$MYMNT/boot/initrd.gz
label=Slax
root=/dev/ram0
read-write
append = "ramdisk_size=6666 changes=slaxchanges"
ENDOFTEXT
echo Updating MBR to setup boot record...
boot/syslinux/lilo -C $MYMNT/boot/lilo.conf -S $MYMNT/boot/ -m $MYMNT/boot/lilo.map
echo "Disk $MBR should be bootable now. Installation finished."
echo
echo "Read the information above and then press any key to exit..."
read junk